发布计划
本文主要介绍如何使用 Open API 来操作 Zadig 的发布计划。
# 发布计划
# 获取发布计划列表
请求
GET /openapi/release_plan/v1
1
Query
| 参数名 | 类型 | 描述 | 是否必须 | 默认值 |
|---|---|---|---|---|
pageNum | int | 分页参数-当前页数 | 是 | 无 |
pageSize | int | 分页参数-当前页展示条数 | 是 | 无 |
返回说明
| 参数名 | 类型 | 描述 |
|---|---|---|
id | string | 发布计划主键 |
name | string | 发布计划名称 |
index | int | 发布计划序号 |
manager | string | 发布负责人 |
description | string | 需求关联 |
create_time | int | 发布计划创建时间 |
created_by | string | 创建人 |
正常返回
{
"list": [
{
"id": "64f58a7ac573f7325c2744b6",
"index": 31,
"name": "test-workflow-0904",
"manager": "admin",
"description": "",
"created_by": "admin",
"create_time": 1693813370
}
],
"total": 26
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 获取发布计划详情
请求
GET /openapi/release_plan/v1/:id
1
路径参数说明
| 参数名 | 类型 | 描述 | 是否必须 | 默认值 |
|---|---|---|---|---|
id | string | 发布计划主键 | 是 | 无 |
正常返回
{
"id": "64f1a7cd1b7bd46ec353b50c",
"index": 21,
"name": "plan-A",
"manager": "admin",
"manager_id": "c565c7eb-e273-11ed-bef9-a659ed9f1ed1",
"start_time": 1693558721, // 发布窗口期
"end_time": 1694016000, // 发布窗口期
"schedule_execute_time": 1694016000, // 定时执行时间
"description": "",
"created_by": "admin",
"create_time": 1693558733,
"updated_by": "admin",
"update_time": 1693558750,
"approval": { // 审批配置
"enabled": true,
"status": "",
"type": "native",
"description": "",
"native_approval": {
"timeout": 5,
"approve_users": [
{
"user_id": "c565c7eb-e273-11ed-bef9-a659ed9f1ed1",
"user_name": "admin",
"reject_or_approve": "",
"comment": "",
"operation_time": 0
}
],
"needed_approvers": 1,
"reject_or_approve": "",
"instance_code": ""
},
"lark_approval": {
"timeout": 5,
"approval_id": "",
"default_approval_initiator": null,
"approve_users": [],
"approval_nodes": [
{
"approve_users": [],
"type": "AND",
"reject_or_approve": ""
}
],
"instance_code": ""
},
"dingtalk_approval": {
"timeout": 5,
"approval_id": "",
"default_approval_initiator": null,
"approval_nodes": [
{
"approve_users": [],
"type": "AND",
"reject_or_approve": ""
}
],
"instance_code": ""
}
},
"jobs": [
{
"id": "0b655ad6-5d08-4f1c-8ff6-7eb004c7c7bd",
"name": "中间件变更",
"type": "text",
"spec": {
"content": "<p>2222</p><p data-f-id=\"pbf\" style=\"text-align: center; font-size: 14px; margin-top: 30px; opacity: 0.65; font-family: sans-serif;\">Powered by <a href=\"https://www.froala.com/wysiwyg-editor?pb=1\" title=\"Froala Editor\">Froala Editor</a></p>"
},
"status": "",
"last_status": "",
"updated": true,
"executed_by": "",
"executed_time": 0
}
],
"status": "planning",
"planning_time": 0, // 完成规划状态的时间
"approval_time": 0, // 完成审批状态的时间
"executing_time": 0, // 完成执行状态的时间
"success_time": 0 // 成功时间
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 创建发布计划
请求
POST /openapi/release_plan/v1
1
body 参数说明
| 参数名 | 类型 | 描述 | 是否必须 | 默认值 |
|---|---|---|---|---|
name | string | 发布计划名称 | 是 | 无 |
manager | string | 发布负责人用户名 | 是 | 无 |
manager_identity_type | string | 发布负责人用户类型, system(默认类型)、ldap、oauth 等 | 是 | 无 |
description | string | 需求关联 | 否 | 无 |
start_time | int | 发布窗口期-开始时间 | 否 | 无 |
end_time | int | 发布窗口期-结束时间 | 否 | 无 |
schedule_execute_time | int | 定时执行时间 | 否 | 无 |
approval | approval | 审批配置,具体字段可参考创建自定义工作流一节 | 否 | 无 |
body 参数示例
{
"name": "plan-example",
"manager": "admin",
"manager_identity_type": "system",
"start_time": 1693558721, // 发布窗口期
"end_time": 1694016000, // 发布窗口期
"description": "",
"approval": { // 审批配置
"enabled": true,
"status": "",
"type": "native",
"description": "",
"native_approval": {
"timeout": 5,
"approve_users": [
{
"user_id": "c565c7eb-e273-11ed-bef9-a659ed9f1ed1",
"user_name": "admin",
"reject_or_approve": "",
"comment": "",
"operation_time": 0
}
],
"needed_approvers": 1,
"reject_or_approve": "",
"instance_code": ""
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
正常返回
{
"id": "6895627bd3a843cb7423728a"
}
1
2
3
2
3
# 更新发布计划以及发布内容
请求
PATCH /openapi/release_plan/v1/:id
1
# 路径参数说明
| 参数名 | 类型 | 描述 | 默认值 | 是否必须 |
|---|---|---|---|---|
id | string | 发布计划 id | 无 | 是 |
body 参数说明
| 参数名 | 类型 | 描述 | 是否必须 | 默认值 |
|---|---|---|---|---|
name | string | 发布计划名称 | 是 | 无 |
manager | string | 发布负责人用户名 | 是 | 无 |
manager_identity_type | string | 发布负责人用户类型, system(默认类型)、ldap、oauth 等 | 是 | 无 |
description | string | 需求关联 | 否 | 无 |
start_time | int | 发布窗口期-开始时间 | 否 | 无 |
end_time | int | 发布窗口期-结束时间 | 否 | 无 |
schedule_execute_time | int | 定时执行时间 | 否 | 无 |
approval | approval | 审批配置,具体字段可参考创建自定义工作流一节 | 否 | 无 |
jobs | []ReleasePlanJob | 发布内容 | 否 | 无 |
ReleasePlanJob 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
name | string | 发布任务名称 |
type | string | 发布任务类型,包括 text 和 workflow |
spec | ReleaseJobSpec | 发布任务规格,当类型为 text 时规格为 TextReleasePlanJob,当类型为 workflow 时规格为 WorkflowReleasePlanJob |
TextReleasePlanJob 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
content | string | 内容 |
remark | string | 备注 |
WorkflowReleasePlanJob 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
workflow_key | string | 工作流标识 |
project_key | string | 项目标识 |
parameters | []Parameter | 全局变量,具体字段可参考创建自定义工作流一节 |
inputs | []Input | 工作流任务 Job 输入参数 ,具体字段可参考创建自定义工作流一节 |
remark | string | 备注 |
body 参数示例
{
"description": "测试2",
"parameters": [
{
"name": "test",
"type": "string",
"value": "zadig"
},
{
"name": "abc",
"type": "choice",
"value": "123"
},
{
"name": "repo1",
"type": "repo",
"repo": {
"codehost_name": "gitlab",
"repo_namespace": "kr-poc",
"repo_name": "num_test",
"branch": "master",
"prs": [ 1 ]
}
}
],
"jobs": [
{
"name": "Text-1",
"spec": {
"content": "Hello, World 1.",
"remark": "abc"
},
"type": "text"
},
{
"name": "Workflow-1",
"spec": {
"workflow_key": "old-hook",
"project_key": "yaml",
"remark": "remark-2",
"inputs": [
{
"job_name": "build",
"job_type": "zadig-build",
"parameters": {
"registry": "https://koderover.*********.com/test",
"service_list": [
{
"service_module": "service1",
"service_name": "service1",
"repo_info": [
{
"codehost_name": "gitlab",
"repo_namespace": "kr-*****",
"repo_name": "multi-service-demo",
"branch": "patrick-01"
}
],
"inputs": [
{
"key": "gggg",
"value": "abcd"
}
]
}
]
}
},
{
"job_name": "deploy",
"job_type": "zadig-deploy",
"parameters": {
"env_name": "dev",
"service_list": [
{
"service_name": "service1",
"service_module": "service1",
"image_name": "https://koderover.*********.com/test/service1:main"
}
]
}
},
{
"job_name": "test",
"job_type": "zadig-test",
"parameters": {
"testing_list": [
{
"testing_name": "static-html-report",
"repo_info": [
{
"codehost_name": "gitlab",
"repo_namespace": "kr-******",
"repo_name": "test-report",
"branch": "main"
}
]
}
]
}
}
]
},
"type": "workflow"
}
],
"manager": "patrick",
"manager_identity_type": "system",
"name": "Test-Plan-1"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110


